﻿#include <iostream>
#include <windows.h>
#include <io.h>
#include <sys\stat.h>
using namespace std;


#undef UNICODE

void FileLengthMain()
{
    char *filepath = "D:\\workspace\\test\\1.c";
    //方法一    

    HANDLE handle = CreateFileA(filepath, FILE_READ_EA, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
    if (handle != INVALID_HANDLE_VALUE)
    {
        int size = GetFileSize(handle, NULL);
        cout<<size<<endl;
        CloseHandle(handle);
    }
     

    //方法二

    WIN32_FIND_DATAA fileInfo; 
    HANDLE hFind; 
    DWORD fileSize; 
        hFind = FindFirstFileA(filepath ,&fileInfo); 
    if(hFind != INVALID_HANDLE_VALUE) 
        fileSize = fileInfo.nFileSizeLow; 
    cout<<fileSize<<endl;
    FindClose(hFind); 

    //方法三

    FILE* file = fopen(filepath, "r");
    if (file)
    {
        int size = filelength(fileno(file));
        cout<<size<<endl;
        fclose(file);
    }

    //方法四

    struct _stat info;
    _stat(filepath, &info);
    int size = info.st_size;
    cout<<size<<endl;

    return ;
}